var selectedRow = '';
var def_editType = 'add';
var isInit = true;

$(function () {
    regValidate(["#_bizDataForm"]);
    window.actionEvents = {
        'click .infoView': function(e, value, row, index) {
            //编辑操作
            selectedRow = row;
            infoBizPage();
        },
    }
});

$('#editBizPage').on('hidden.bs.modal', function () {
    resetFormTip('#_bizDataForm');
    resetInputCss('#_bizDataForm');
});

$('#bizInfoPage').on('hidden.bs.modal', function () {
    $('#lab_bizCode').html('');
    $('#lab_bizName').html('');
    $('#lab_sortNum').html('');
    $('#lab_remark').html('');
    $('#lab_link').html('');
});

function doRefresh() {
    selectedRow = '';
    var bizName = $('#bizName').val();
    var status = $('#status').val();
    $('#dataTable').bootstrapTable('refresh', {
        url: basePath + 'biz/pageFindBizData?t=' + new Date().getTime(),
        query: {
            bizName : bizName,
            status : status
        },
    });
}

function getParams(params) {
    var bizName = $('#bizName').val();
    var status = $('#status').val();
    var pageSize = params.pageSize;
    var pageNo = params.pageNo;
    if (isInit) {
        isInit = false;
        pageSize = defBizInfo.pageSize ? defBizInfo.pageSize : params.pageSize;
        pageNo = defBizInfo.pageNo ? defBizInfo.pageNo : params.pageNumber;
    }
    return {
        bizName : bizName,
        status : status,
        pageSize : pageSize,
        pageNo : pageNo
    };
}

function openAddBizPage() {
    def_editType = 'add';
    $('#_modelTitle').html('新增业务');
    $('#_bizCode').val('');
    $('#_bizName').val('');
    $('#_sortNum').val('');
    $('#remark').val('');
    $('#link').val('');
    $('#editBizPage').modal('show');
}

function openEditBizPage() {
    def_editType = 'edit';
    if (!selectedRow.id || selectedRow.id == '') {
        toastr.error(common_no_choose_msg.format("编辑"));
        return;
    }
    $('#_modelTitle').html('编辑业务');
    $('#_bizCode').val(selectedRow.bizCode);
    $('#_bizName').val(selectedRow.bizName);
    $('#_sortNum').val(selectedRow.sortNum);
    $('#remark').val(selectedRow.remark);
    $('#link').val(selectedRow.link);
    $('#editBizPage').modal('show');
}

function infoBizPage() {
    if (!selectedRow.id || selectedRow.id == '') {
        toastr.error(common_no_choose_msg.format("操作"));
        return;
    }
    $('#lab_bizCode').html(selectedRow.bizCode);
    $('#lab_bizName').html(selectedRow.bizName);
    $('#lab_sortNum').html(selectedRow.sortNum);
    $('#lab_remark').html(selectedRow.remark);
    $('#lab_link').html(selectedRow.link);
    $('#bizInfoPage').modal('show');
}

function closeBizInfoPage() {
    $('#bizInfoPage').modal('hide');
    resetFormTip('#_bizDataForm1');
}

function closeEditBizPage() {
    $('#editBizPage').modal('hide');
    resetFormTip('#_bizDataForm');
    resetInputCss('#_bizDataForm');
}

function doSaveBiz() {
    if(!$("#_bizDataForm").valid()) return;//校验不通过
    var bizCode = $.trim($('#_bizCode').val());
    var bizName = $.trim($('#_bizName').val());
    var sortNum = $.trim($('#_sortNum').val());
    sortNum = sortNum ? sortNum : 999;
    var remark = $.trim($('#remark').val());
    var link = $.trim($('#link').val());
    var postData = {
        bizCode : bizCode,
        bizName : bizName,
        sortNum : sortNum,
        remark : remark,
        link : link,
    };
    var url = basePath + 'biz/addBiz';
    if (def_editType == 'edit') {
        url = basePath + 'biz/editBiz';
        postData.id = selectedRow.id;
    }
    $.ajax({
        type: 'post',
        url: url,
        dataType: 'json',
        contentType: "application/json",
        data: JSON.stringify(postData),
        success : function (data) {
            if(data && data.isSuccess){
                toastr.success(common_save_success);
                closeEditBizPage();
                doRefresh();
            }else if(data&&!data.isSuccess){
                if (data.errorCode == 'EXIST_CODE') {
                    toastr.error('此业务编码已存在，无法重复添加');
                    return;
                }
                if (data.errorCode == 'EXIST') {
                    toastr.error('此业务名称已存在，无法重复添加');
                    return;
                }
                toastr.error(data.errorDesc);
            }else{
                toastr.error(common_save_fail);
            }
        },
        error: function (request) {
            toastr.error(common_system_error);
        }
    });
}

function checkBizDelete() {
    if (!selectedRow.id) {
        toastr.error(common_no_choose_msg.format("删除"));
        return;
    }
    var postData = {
        bizCode : selectedRow.bizCode,
    };
    $.ajax({
        type: 'post',
        url: basePath + 'biz/checkBizDelete?t=' + new Date().getTime(),
        dataType: 'json',
        contentType: "application/json",
        data: JSON.stringify(postData),
        success : function (data) {
            if (!data) {
                toastr.error('校验删除失败');
                return;
            }
            if (!data.isSuccess) {
                if (data.errorCode == 'HAS_CHILD') {
                    toastr.error('该目录下包含业务细分，无法删除');
                } else if (data.errorCode == 'HAS_REF') {
                    toastr.error('该业务已关联机构服务，无法删除');
                } else {
                    toastr.error(data.errorDesc);
                    return;
                }
            } else {
                var strHtml = '是否删除业务【'+selectedRow.bizName+'】？该操作会变更数据！';
                swalToastr('', strHtml, 'warning', deleteBiz);
            }
            return;
        },
    });
}

function deleteBiz() {
    var postData = {
        id : selectedRow.id,
        status : 'delete'
    };
    $.ajax({
        type: 'post',
        url: basePath + 'biz/changeState',
        dataType: 'json',
        contentType: "application/json",
        data: JSON.stringify(postData),
        success : function (data) {
            if(data && data.isSuccess){
                toastr.success('删除成功');
                doRefresh();
            }else if(data&&!data.isSuccess){
                toastr.error(data.errorDesc);
            }else{
                toastr.error('删除失败');
            }
        },
        error: function (request) {
            toastr.error(common_system_error);
        }
    });
}

function changeBizState() {
    if (!selectedRow.id) {
        toastr.error(common_no_choose_msg.format("操作"));
        return;
    }
    var status = 'disabled';
    var str = '冻结';
    if (selectedRow.status == 'disabled') {
        status = 'enabled';
        str = '恢复';
    }
    var postData = {
        id : selectedRow.id,
        status : status
    };
    $.ajax({
        type: 'post',
        url: basePath + 'biz/changeState',
        dataType: 'json',
        contentType: "application/json",
        data: JSON.stringify(postData),
        success : function (data) {
            if(data && data.isSuccess){
                toastr.success(str + '成功');
                doRefresh();
            }else if(data&&!data.isSuccess){
                toastr.error(data.errorDesc);
            }else{
                toastr.error(str + '失败');
            }
        },
        error: function (request) {
            toastr.error(common_system_error);
        }
    });

}

function openChildBizPage() {
    if (!selectedRow || selectedRow == '') {
        toastr.error(common_no_choose_msg.format("查看服务项"));
        return;
    }
    if (!selectedRow.bizCode) {
        toastr.error(common_no_choose_msg.format("操作"));
        return;
    }
    var searchKey = $('#bizName').val();
    var searchStatus = $('#status').val();
    var tableOptions = $('#dataTable').bootstrapTable('getOptions', null);
    window.location.href = basePath + 'biz/childBizPage?bizCode=' + selectedRow.bizCode + '&searchKey=' + searchKey + '&searchStatus=' + searchStatus +
        '&t=' + new Date().getTime() + '&pageNo=' + tableOptions.pageNumber + '&pageSize=' + tableOptions.pageSize;
}

//------------------------------------------------------------------------列表数据初始化
function formatStatus(value, row, index) {
    if (value == 'enabled') {
        return '有效';
    }
    if (value == 'disabled') {
        return '无效';
    }
    return value;
}

//左边选中事件
$("#dataTable").on("click-row.bs.table",function(e,row,ele){
    $("#dataTable .success").removeClass("success");
    $(ele).addClass("success");
    selectedRow = row;
    if (row.status == 'enabled') {
        $('#_btnChangeState').html('冻结');
    } else {
        $('#_btnChangeState').html('恢复');
    }
});
